.remote-container { max-width: 480px; margin: 0 auto; padding: 16px; font-family: 'Pretendard', sans-serif; color: #E0E0E0; background: #1A1A2E; min-height: 100vh; } .remote-header { display: flex; align-items: center; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid #333; margin-bottom: 16px; h1 { font-size: 18px; font-weight: 700; color: #FFF; margin: 0; } } .connection-badge { font-size: 11px; padding: 3px 8px; border-radius: 12px; font-weight: 600; &.connected { background: #1B5E20; color: #A5D6A7; } &.disconnected { background: #B71C1C; color: #EF9A9A; } } /* 컨트롤 패널 */ .control-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 16px; } .control-btn { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 12px; border: 1px solid #444; border-radius: 10px; background: #2A2A3E; color: #CCC; font-size: 13px; font-weight: 600; cursor: pointer; transition: all 0.2s; &:hover { background: #3A3A4E; } &.active { background: #FF6B35; color: #FFF; border-color: #FF6B35; } &.danger { background: #C62828; color: #FFF; border-color: #C62828; } &.full-width { grid-column: 1 / -1; } } /* 후원 목록 */ .alert-list-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; h2 { font-size: 15px; font-weight: 700; color: #FFF; margin: 0; } } .alert-count { font-size: 12px; color: #888; } .alert-list { display: flex; flex-direction: column; gap: 6px; } .alert-item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; background: #2A2A3E; position: relative; &.playing { background: #1A3A1A; border-left: 3px solid #4CAF50; animation: playingPulse 2s infinite; } &.failed { background: #3A1A1A; border-left: 3px solid #F44336; } &.skipped, &.ignored { opacity: 0.5; } } .alert-direction { display: flex; align-items: center; gap: 4px; font-size: 12px; color: #888; flex-shrink: 0; } .alert-arrow { color: #FF6B35; font-size: 14px; } .alert-body { flex: 1; overflow: hidden; } .alert-body-top { display: flex; align-items: center; gap: 6px; } .alert-sender-name { font-weight: 600; font-size: 13px; color: #FFD700; } .alert-amount { font-weight: 700; font-size: 13px; color: #FF6B35; } .alert-msg { font-size: 12px; color: #AAA; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 2px; } .alert-time { font-size: 10px; color: #666; margin-top: 2px; } .alert-status-badge { font-size: 10px; padding: 2px 6px; border-radius: 4px; font-weight: 600; flex-shrink: 0; &.status-playing { background: #1B5E20; color: #A5D6A7; } &.status-queued { background: #333; color: #999; } &.status-failed { background: #B71C1C; color: #EF9A9A; } &.status-delivered { background: #1A237E; color: #9FA8DA; } &.status-skipped { background: #4A4A00; color: #999; } &.status-ignored { background: #333; color: #666; } } /* 햄버거 메뉴 */ .alert-menu-btn { width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border: none; background: transparent; color: #888; cursor: pointer; border-radius: 4px; font-size: 16px; flex-shrink: 0; &:hover { background: #444; color: #FFF; } } .alert-menu-dropdown { position: absolute; right: 12px; top: 40px; background: #333; border-radius: 8px; padding: 4px 0; z-index: 10; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); min-width: 120px; } .alert-menu-item { padding: 8px 16px; font-size: 13px; color: #DDD; cursor: pointer; white-space: nowrap; &:hover { background: #444; } &.danger { color: #EF9A9A; } } .empty-list { text-align: center; color: #666; padding: 40px 0; font-size: 14px; } @keyframes playingPulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(76, 175, 80, 0.3); } 50% { box-shadow: 0 0 0 4px rgba(76, 175, 80, 0); } }